In computing, a graph database uses graph structures with vertices, edges, and associated properties to represent and store data. A graph database provides index-free adjacency. Every element contains a direct pointer to its adjacent elements and no index lookups are necessary. Compared with relational databases, graph databases are often faster for associative data sets, and map more directly to the structure of object-oriented applications. As they depend less on a rigid schema, they are more suitable to manage ad hoc and changing data with evolving schemas.
However, traditional computer architecture requires data to be stored and accessed in sequential order. In order to map the multi-dimensional data of the graph data to the limited dimensionality of existing computer architecture, tradeoffs have to be made with respect to data locality and performance. Additionally, as the graph database becomes larger, it becomes inefficient and often impractical to store the database on a single storage/machine. Efficiently and effectively dividing up graph data for storage in different locations becomes important.